# 给定字符串
s = "Python is great!"

# 完成以下题目
# 1. 字符串反转: 给定字符串`s = "Python is great!"`，不使用任何内置函数，编写代码以反转字符串。
# print(s[::-1])

# 2. 字符计数: 对于同一个字符串`s`，计算字符 `t'` 在其中出现的次数。
# print(s.count('t'))

# 3. 替换字符: 把字符串`s` 中的所有空格替换成下划线 ``。
# print(s.replace(' ', '_'))

# 4. 检查回文: 检查字符串`s2 = "A man, a plan, a canal, Panama!"` 在忽略大小写、标点和空格的情况下是否为回文字符串。
# s2 = "A man, a plan, a canal, Panama!"
# print(s2.lower().replace(' ', '').replace(',', '').replace('!', '') == s2.lower().replace(' ', '').replace(',', '').replace('!', '')[::-1])

# 5. 子字符串查找: 在`s` 中查找第一次出现子字符串 `is"` 的位置。
# print(s.find('is'))

# 6. 字符串插入: 在`s` 中第一个 `t'` 字符之后插入子字符串`"_inserted"`。
# print(s[:s.find('t')] + '_inserted' + s[s.find('t') + 1:])

# 7. 部分替换: 替换`s` 中第一次出现的 `great"` 为 `awesome"`。
# print(s.replace('great', 'awesome'))

# 8. 切片与拼接: 将`s` 切分为两部分，其中第一部分包含前半部分的字符，第二部分包含后半部分的字符，然后将这两部分以相反顺序拼接起来。
# print(s[:len(s)//2][::-1] + s[len(s)//2:][::-1])

# 9. 创建字符串列表: 使用列表生成式，根据字符串`s` 创建一个列表，其中包含`s` 的每个单词的首字母大写形式。
# print([word[0].upper() + word[1:] for word in s.split()])

# 10. 字符替换加密: 编写一个函数`encrypt`，使用字典 `a: m, b: n, ... z: l}` 的对应规则加密字符串`s3 = "encryption"`。
s3 = "encryption"
def encrypt(s3):
    encrypted_dict = {
        'a': 'm', 'b': 'n', 'c': 'o', 'd': 'p', 'e': 'q',
        'f': 'r', 'g': 's', 'h': 't', 'i': 'u', 'j': 'v',
        'k': 'w', 'l': 'x', 'm': 'y', 'n': 'z', 'o': 'a',
        'p': 'b', 'q': 'c', 'r': 'd', 's': 'e', 't': 'f',
        'u': 'g', 'v': 'h', 'w': 'i', 'x': 'j', 'y': 'k', 'z': 'l',
        'A': 'M', 'B': 'N', 'C': 'O', 'D': 'P', 'E': 'Q',
        'F': 'R', 'G': 'S', 'H': 'T', 'I': 'U', 'J': 'V',
        'K': 'W', 'L': 'X', 'M': 'Y', 'N': 'Z', 'O': 'A',
        'P': 'B', 'Q': 'C', 'R': 'D', 'S': 'E', 'T': 'F',
        'U': 'G', 'V': 'H', 'W': 'I', 'X': 'J', 'Y': 'K', 'Z': 'L'
    }
    encrypted_string = ''.join([encrypted_dict.get(char, char) for char in s3])
    return encrypted_string

# 测试加密函数
print(encrypt(s3))  # 输出: "qvsrkcyr"